 	subroutine inirand()
	call srand(13)
	return
	end

#ifdef SINGLE
	subroutine sinit(nx, x)
#define THIS_REAL
#endif
#ifdef DOUBLE
	subroutine dinit(nx, x)
	implicit double precision (a-h, o-z)
#define THIS_REAL
#endif
#ifdef COMPLEX
	subroutine cinit(nx, x)
	implicit complex (a-h, o-z)
#define THIS_COMPLEX
#endif
#ifdef ZOMPLEX
	subroutine zinit(nx, x)
	implicit double complex (a-h, o-z)
#define THIS_COMPLEX
#endif
	dimension x(*)
	double precision rand
	do i = 1, nx
#ifdef THIS_REAL
	    x(i) = 2 * rand() - 1.0
#endif
#ifdef THIS_COMPLEX
	    x(i) = cmplx(2 * rand() - 1.0, 2 * rand() - 1.0)
#endif
	end do
	return
	end

#ifdef SINGLE
	subroutine sone(nx, x)
#endif
#ifdef DOUBLE
	subroutine done(nx, x)
	implicit double precision (a-h, o-z)
#endif
#ifdef COMPLEX
	subroutine cone(nx, x)
	implicit complex (a-h, o-z)
#define THIS_COMPLEX
#endif
#ifdef ZOMPLEX
	subroutine zone(nx, x)
	implicit double complex (a-h, o-z)
#define THIS_COMPLEX
#endif
	dimension x(*)

#ifdef THIS_REAL
	one = 1.0
	zero = 0.0
#endif
#ifdef THIS_COMPLEX
	one = cmplx(1.0,0.0)
	zero = cmplx(0.0,0.0)
#endif
	x(1) = one
	do i = 2, nx
	    x(i) = zero
	end do
	return
	end

